<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 思路：
        // 专门求阶乘函数
        // 再弄一个阶乘和函数



        // 接收用户输入的数字n
        // var n = parseInt(prompt("请输入一个正整数"));
        var n = prompt("请输入");
        // 设置一个初始变量作为接收和的值
        var sum = 0;
        // 递归函数求阶乘
        function fac (a) {
            if (a == 1) {
                // 如果a是1，阶乘是1
                return 1;
            }else {
                return a * fac(a - 1);
            }
        }
        // 循环求和
        for(var i = 1 ; i <= n; i++) {
            sum += fac(i);
            // console.log(fac(i));
        }
        // 输出函数
        alert(n + "阶乘之和是" + sum);

        
        // // 设置一个变量作为阶乘，一个作为和
        // var sum = 0;
        // 
        // // 建立一个函数,需要接收n作为实参
        // function fac (a) {
        //     // 外层循环求和
        //     for(var i = 1; i <= a ; i++) {
                    // 初始化每次都要在内部，不然值会连续加起来
                    // var product = 1;
        //         // 内层循环求阶乘
        //         for (var j = 1 ; j <= i ; j++) {
        //             product = product * j;
        //             console.log(product);
        //         }
        //         // console.log(product);
        //         console.log("阶乘结果是" + product);
        //         sum += product;
        //     }
        //     console.log(sum);
        // }

        // fac(n);

    </script>
</head>
<body>
    3. 用户输入一个整数n：

求1! + 2! + 3! + 4! + …… + n!的和

叹号表示阶乘，如4! = 1 * 2 * 3 * 4
</body>
</html>